package com.sh.data.engine.application.model.request.normalization;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotBlank;

/**
 * @author tinglan.ys
 * @description:
 * @date 2022/4/20 下午3:04
 */
@Data
@Schema
public class IndexRequest {

    /**
     * 指标id 更新时传入
     */
    @Schema(description = "指标id 更新时传入")
    private Long id;

    /**
     * 指标名称
     */
    @Schema(description = "指标名称")
    @NotBlank(message = "指标名称不能为空")
    private String name;

    /**
     * 指标目录id
     */
    @Schema(description = "指标目录id")
    private Long indexCatalogId;

    /**
     * 业务定义
     */
    @Schema(description = "业务定义")
    @NotBlank(message = "业务定义不能为空")
    private String businessDef;

    /**
     * 计算规则
     */
    @Schema(description = "计算规则")
    @NotBlank(message = "计算规则不能为空")
    private String calculationRule;

    /**
     * 时间粒度：day，week，month，quarter，year，rt(实时)
     */
    @Schema(description = "时间粒度：day，week，month，quarter，year，rt(实时)")
    @NotBlank(message = "时间粒度不能为空")
    private String timeGranularity;

    /**
     * 数据ownerId
     */
    @Schema(description = "数据ownerId")
    private Long dataOwnerId;

    /**
     * 分析维度
     */
    @Schema(description = "分析维度")
    private String analysisDimension;

    /**
     * 备注
     */
    @Schema(description = "备注")
    private String remark;

    /** 版本号 */
  /*@Schema(description = "版本号(新增的时候无需传入默认V1.0,新增版本的时候传入老版本号)")
  private String version;*/

    /**
     * 指标编号 用于分类：不同版本的指标虽然id不同，但是指标编号是一样的
     */
    @Schema(description = "指标编号 新增版本的时候传入老指标编号")
    private Long indexNum;

    /**
     * 计量单位
     */
    @Schema(description = "计量单位")
    private String unit;

    // CDM组件
    @Schema(description = "主题域")
    private Long themeId;

    private Long projectId;
}
